package cn.px.sa.admin.module.irrigation.device.domain.form;

import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDate;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 设备管理信息表，用于存储和管理各类设备的详细信息 新建表单
 *
 * @author 品讯科技
 * @date 2024-08
 * @Copyright 东营市华信智能科技有限公司
 */

@Data
public class DeviceAddForm {


    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "设备名称 不能为空")
    private String deviceName;
    /**
     * 设备类型（见系统字典表）
     */
    @Schema(description = "设备类型（见系统字典表）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "设备类型（见系统字典表） 不能为空")
    private Integer deviceType;

    /**
     * 序列号，确保唯一
     */
    @Schema(description = "序列号，确保唯一", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "序列号，确保唯一 不能为空")
    private String snCode;

    /**
     * 物联网卡号
     */
    @Schema(description = "物联网卡号")
    private String cardNum;

    /**
     * 制造商
     */
    @Schema(description = "制造商")
    private String manufacturer;

    /**
     * 型号
     */
    @Schema(description = "设备型号")
    private String model;

    /**
     * 购买日期
     */
    @Schema(description = "购买日期")
    private LocalDate purchaseDate;

    /**
     * 保修到期日期
     */
    @Schema(description = "保修到期日期")
    private LocalDate warrantyExpiryDate;

    /**
     * 设备所在位置
     */
    @Schema(description = "设备坐标")
    private String coordinate;

    /**
     * 设备状态,系统见字典表:device_usage_status
     * 1:在用 2:维修中 3:退役
     */
    @Schema(description = "设备状态,系统见字典表:device_usage_status", requiredMode = Schema.RequiredMode.REQUIRED,defaultValue = "1")
    @NotNull(message = "设备状态不能为空")
    private Integer usageStatus;

    /**
     * 所属支门泵站
     */
    @Schema(description = "所属支门泵站", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "所属支门泵站不能为空")
    private Long stationId;


    /**
     * 其他备注信息
     */
    @Schema(description = "其他备注信息")
    private String notes;



}
